package com.lnu_devteam.zongce.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.lnu_devteam.zongce.common.ErrorCode;
import com.lnu_devteam.zongce.exception.BusinessException;
import com.lnu_devteam.zongce.model.vo.ScoreVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 公示表
 * @TableName tb_publicity
 */
@ApiModel(description = "公示表")
@TableName(value ="tb_publicity")
@Data
public class Publicity implements Serializable, Cloneable {
    /**
     * 分数公示主键
     */
    @ApiModelProperty("分数公示主键")
    @TableId
    private Long pId;

    /**
     * 分数变更项，例挑战杯/校赛/银奖
     */
    @ApiModelProperty("分数变更项，例挑战杯/校赛/银奖")
    private String sProject;

    /**
     * 变更分数
     */
    @ApiModelProperty("变更分数")
    private Double sValue;

    /**
     * 证明材料，存放图片urlJSON，限制两张
     */
    @ApiModelProperty("证明材料，存放图片urlJSON，限制两张")
    private String sSupport;

    /**
     * 学年
     */
    @ApiModelProperty("学年")
    private String sAcademicYear;

    /**
     * 分数所属学院
     */
    @ApiModelProperty("分数所属学院")
    private String sCollege;

    /**
     * 分数所属年级
     */
    @ApiModelProperty("分数所属年级")
    private String sGrade;

    /**
     * 分数所属专业
     */
    @ApiModelProperty("分数所属专业")
    private String sMajor;

    /**
     * 分数所属班级
     */
    @ApiModelProperty("分数所属班级")
    private String sClass;

    /**
     * 分数变更类型，德育分0、技能分1、文体分2
     */
    @ApiModelProperty("分数变更类型，德育分0、技能分1、文体分2")
    private Integer sType;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 创建用户(分数变更人)，学号/工号
     */
    @ApiModelProperty("创建用户(分数变更人)，学号/工号")
    private String createUser;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 更新用户(分数审核人)，学号/工号
     */
    @ApiModelProperty("更新用户(分数审核人)，学号/工号")
    private String updateUser;

    /**
     * 删除标识
     */
    @ApiModelProperty("删除标识")
    private Integer isDelete;

    @ApiModelProperty(hidden = true)
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public Publicity clone() {
        try {
            return (Publicity) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new BusinessException(ErrorCode.SYSTEM_ERROR);
        }
    }
}